Network caching devices, such as proxy servers, are computer-based appliances that allow clients to make indirect connections to other services. A client connects to the proxy, then requests a connection, file, or other resource available on a different server. The proxy provides the resource either by connecting to the specified server or by serving it from a cache.
Recently, split proxy configurations have become popular. A split proxy is essentially a pair of proxies installed across two computer-based appliances. Since they are effectively two parts of the same program, the two proxies can communicate with each other very efficiently. Instead of sending entire objects or data streams between the proxies, because both appliances store the same content one proxy need only send the other a reference to where the subject content is stored. Such schemes are especially useful for compressing data over a slow or high latency communication links.
Whether being used in split proxy configurations or otherwise, however, network caching appliances can suffer performance degradation as their storage space fills up. In general, network caching appliances store content on one or more hard disks. Over time, older or less frequently requested content is replaced with newer or more frequently requested content, but this is usually done haphazardly with respect to the location of the content items on the physical disks. As a result, write performance can be severely and negatively impacted because of the need to continually reposition the write heads of the disk(s).